package cn.iocoder.yudao.module.erp.controller.admin.dp.dpalmt.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - ERP阿拉木图仓库 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DpAlmtRespVO {

    @Schema(description = "运单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26253")
    @ExcelProperty("运单号")
    private String id;

    @Schema(description = "发货人")
    @ExcelProperty("发货人")
    private String shipper;

    @Schema(description = "用户输入的具体路线")
    @ExcelProperty("线路详情")
    private String way;

    @Schema(description = "制单时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("制单日期")
    private String chooseDate;

    @Schema(description = "货号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("货号")
    private String no;

    @Schema(description = "总件数", example = "17842")
    @ExcelProperty("入库件数")
    private Integer inCount;

    @Schema(description = "入库品名", example = "张三")
    @ExcelProperty("入库品名")
    private String inName;

    @Schema(description = "总重量")
    @ExcelProperty("重量")
    private Double weight;

    @Schema(description = "总体积")
    @ExcelProperty("入库体积")
    private Double inVolume;

    @Schema(description = "密度")
    @ExcelProperty("密度")
    private Double density;

    @Schema(description = "单价", example = "1")
    @ExcelProperty("单价")
    private Double unitPrice;

    @Schema(description = "立方单价", example = "10")
    @ExcelProperty("立方单价")
    private Double cubeUnitPrice;

    @Schema(description = "总金额", example = "100")
    @ExcelProperty("总金额")
    private Double totalAmount;

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String note;

    @Schema(description = "垫付打包费")
    @ExcelProperty("垫付打包费")
    private Double advancePayPack;

    @Schema(description = "垫付运费")
    @ExcelProperty("垫付运费")
    private Double advancePayChinaFreight;

    @Schema(description = "垫付提货费")
    @ExcelProperty("垫付提货费")
    private Double advancePayPackUp;

    @Schema(description = "垫付货款")
    @ExcelProperty("垫付货款")
    private Double advancePayForGoods;

    @Schema(description = "保费")
    @ExcelProperty("收保费")
    private Double premium;

    @Schema(description = "代收")
    @ExcelProperty("代收")
    private Double collecting;

    @Schema(description = "客户返点")
    @ExcelProperty("客户返点")
    private Double customerRebate;

    @Schema(description = "支付类型(1国内支付 2国外支付)", example = "1")
    @ExcelProperty("支付类型")
    private String payTypeFormatted;

    @Schema(description = "目的地")
    @ExcelProperty("目的地")
    private String destination;

    @Schema(description = "收货人")
    @ExcelProperty("收货人")
    private String consignee;

    @Schema(description = "是否核销 0否1是")
    @ExcelProperty("核销")
    private String writeOffFormatted;

    @Schema(description = "送货人名称", example = "赵六")
    @ExcelProperty("送货人名称")
    private String deliveryName;

    @Schema(description = "业务员", example = "张三")
    @ExcelProperty("业务员名称")
    private String salesman;

    @Schema(description = "格式化后的线路")
    @ExcelProperty("线路")
    private String lineFormatted;

    @Schema(description = "核销费用")
//    @ExcelProperty("核销费用")
    private Double writeExpenses;

    @Schema(description = "送货人联系方式")
//    @ExcelProperty("送货人联系电话")
    private String deliveryPhone;

    @Schema(description = "业务返点")
//    @ExcelProperty("业务返点")
    private Double businessRebate;

    @Schema(description = "仓库类型 阿拉木图仓8", example = "1")
//    @ExcelProperty("仓库类型 阿拉木图仓8")
    private Integer storeType;

    @Schema(description = "配车号")
    private String dispatchNumber;

    @Schema(description = "剩余总件数", example = "32158")
//    @ExcelProperty("剩余总件数")
    private Integer remCount;

    @Schema(description = "剩余总体积")
//    @ExcelProperty("剩余总体积")
    private Double remVolume;

    @Schema(description = "剩余总重量")
//    @ExcelProperty("剩余总重量")
    private Double remWeight;

    @Schema(description = "到货件数")
    private Integer arrCount;

    @Schema(description = "到货体积")
    private Double arrVolume;

    @Schema(description = "到货重量")
    private Double arrWeight;

    @Schema(description = "到货时间")
    private LocalDateTime arrivedTime;

    @Schema(description = "配车出库时单据的备注说明")
//    @ExcelProperty("配车出库时单据的备注说明")
    private String totalNote;

    @Schema(description = "垫付金额")
//    @ExcelProperty("垫付金额")
    private Double earpayAmount;

    @Schema(description = "入库照片")
//    @ExcelProperty("入库照片")
    private String inPic;

    @Schema(description = "线路选择 东线1 西线2")
//    @ExcelProperty("线路选择 东线1 西线2")
    private Integer line;

    @Schema(description = "货值")
//    @ExcelProperty("货值")
    private Double goodsValue;

    @Schema(description = "保率")
//    @ExcelProperty("保率")
    private Integer guaranteedRate;

    @Schema(description = "是否核销 0否1是")
//    @ExcelProperty("是否核销 是1否2")
    private Integer writeOff;

    @Schema(description = "优惠金额")
//    @ExcelProperty("优惠金额")
    private Double discountAmount;

    @Schema(description = "附件")
//    @ExcelProperty("附件")
    private String file;

    @Schema(description = "审核状态 未审核0 审核1", example = "1")
//    @ExcelProperty("审核状态 未审核0 审核1")
    private Integer status;

    @Schema(description = "支付类型(1国内支付 2国外支付)", example = "2")
//    @ExcelProperty("支付类型(1国内支付 2国外支付)")
    private Integer payType;

    @Schema(description = "总金额计算方式 1按重量 2按立方 3按整车 4按重量和立方")
//    @ExcelProperty("1按重量 2按立方 3按整车 4按重量和立方 5垫付加运费")
    private Integer calmethod;

    @Schema(description = "是否拆票 0否 1是")
//    @ExcelProperty("是否拆票 0否 1是")
    private Integer isSplit;

    @Schema(description = "出入库状态 0未出库 1已出库 2已入库", example = "1")
//    @ExcelProperty("出入库状态 0未出库 1已出库 2已入库")
    private Integer inventoryStatus;

    @Schema(description = "到货签收")
    private Integer arrStatus;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
//    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "提货状态 0未提货 1已提货 2后程签收")
    private Integer pickStatus;

    @Schema(description = "已签收数量")
    private Integer signNum;
}